// pages/mvdetail/index.js
const app = getApp()
import {
  getmusiceid
} from "../../api/musice"

function getRandomColor() {
  const rgb = []
  for (let i = 0; i < 3; ++i) {
    let color = Math.floor(Math.random() * 256).toString(16)
    color = color.length === 1 ? '0' + color : color
    rgb.push(color)
  }
  return '#' + rgb.join('')
}
Page({

  /**
   * 页面的初始数据
   */
  data: {
    isconnect: false,
    inputValue: "",
    url: "",
    danmuList: [{
      text: '第 1s 出现的弹幕',
      color: '#ff0000',
      time: 1
    }, {
      text: '第 3s 出现的弹幕',
      color: '#ff00ff',
      time: 3
    }],
  },
  // bindInputBlur(e) {
  //   this.inputValue = e.detail.value
  // },
  // 实时时间
  timeupdate(e){
// console.log(e.detail.currentTime);
this.timer=Math.floor(e.detail.currentTime)
  },
  bindSendDanmu() {
    const content={
      text:this.data.inputValue,
      color:getRandomColor(),
      time:this.timer==null?0:this.timer
    }
    const msg = {
      from: this.userName, // 发送人，当前用户的用户名
      createTime: new Date().getTime(), // 发送时间
      cmd: 11, // 命令固定内容
      group_id: this.groupId, // 分组id。  想要发送到哪个组里
      chatType: 1, //  聊天类型 固定内容
      msgType: 0, // 消息类型 固定内容
      content:JSON.stringify(content), // 消息内容，自己设计结构，比如你想发送图片（图片上传的接口）
      nickName: this.nickName, // 用户昵称
      avatar: this.avatar, // 用户头像
      type:"1" // 消息类型。 你可以自己设计，发送过去是什么，返回的就是什么（1: 普通文本 2: 图片 3：点赞 4， 送花）

    }
    // 发送的只能是字符串
    wx.sendSocketMessage({
      data: JSON.stringify(msg),
    })
    // this.videoContext.sendDanmu({
    //   text: this.data.inputValue,
    //   color: getRandomColor()
    // })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // console.log();
    getmusiceid(options.id).then(res => {
      console.log(res);
      this.setData({
        url: res.data.data.url
      })
    })


    // 线上弹幕
    const userInfo = app.globalData.username;
    // app.globalData.userInfoPromise.then(res => {
    console.log(app.globalData.username); //打印出来是用户登录的信息
    console.log(userInfo);
    this.userName = userInfo.loginName; //

    this.setData({
      userName: this.userName
    })

    this.groupId = "web09-mv" + options.id; //当前
    this.nickName = userInfo.userName;
    this.avatar = userInfo.avatar;
    // 建立连接
    wx.connectSocket({
      url: `wss://showme.myhope365.com/websocketChat?userName=${this.userName}&password=211&courseId=${this.groupId}&
      nickName=${this.nickName}&avatar=${this.avatar}`,
    })
    wx.onSocketOpen((result) => {
      console.log("消息");
      console.log(result);
      // 链接建立成功后执行
      this.setData({
        isconnect: true
      })
      //获取历史消息
      const historymsg = {
        cmd: 19, //命令
        type: 1, // 类型，固定值
        groupId: this.groupId, //分组的id
        userId: this.userName, // 用户的id（可以用loginName）
      }
      wx.sendSocketMessage({
        data: JSON.stringify(historymsg),
      })
      this.timer = setInterval(() => {
        wx.sendSocketMessage({
          data: JSON.stringify({
            "cmd": 13, // 固定参数
            "hbbyte": "-127" // 固定参数
          }),
        })
      }, 5000)

    })
    wx.onSocketMessage((result) => {
      console.log("有消息进入啦");
      console.log(result);
      const data = JSON.parse(result.data)
      if (data.command == 20 && data.code == 10018) {
        if (data.data&&data.data.groups && data.data.groups[this.groupId]) {
          this.setData({
            danmuList: data.data.groups[this.groupId].map(item=>JSON.parse(item.content))
          })
        }
      }
      if(data.command==11){
          const comment=JSON.parse(data.data.content)
          console.log(comment);
          this.data.danmuList.push(comment);
          console.log(this.data.danmuList);
         this.setData({
           danmuList:this.data.danmuList
         })
      }
    })
    // })

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    this.videoContext = wx.createVideoContext('mvid')
  },
  onUnload() {
    wx.closeSocket({
      code: 0,
    })
    clearInterval(this.timer)
  },
})